/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package smedim.rn;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import smedim.dao.ClienteDAO;
import smedim.entidade.Cliente;
import smedim.entidade.Prontuario;

/**
 *
 * @author Mikael Lima
 */
public class ClienteRN implements Serializable {

    private final ClienteDAO dao = new ClienteDAO();
    private final ProntuarioRN rnP = new ProntuarioRN();

    public boolean salvar(Cliente cliente) {
        if (cliente.getId() == null || cliente.getId() == 0) {
            dao.criar(cliente);
            Prontuario p = new Prontuario();
            p.setAntecedentesFamiliares("sem registros");
            p.setAntecedentesPessoais("sem registros");
            p.setCliente(cliente);
            return rnP.salvar(p);
        } else {
            return dao.alterar(cliente);
        }
    }

    public boolean deletar(Cliente cliente) {
        return dao.remover(cliente);
    }

    public List<Cliente> autoComplete(String busca) {
        if (busca.isEmpty()) {
            return Collections.EMPTY_LIST;
        } else {
            List<Cliente> lista = obterTodos();
            List<Cliente> filtrado = new ArrayList<>();

            for (Cliente cliente : lista) {
                if (cliente.getNome().toUpperCase().contains(busca.toUpperCase())) {
                    filtrado.add(cliente);
                }
            }

            return filtrado;
        }
    }

    public Cliente obterPorId(Integer id) {
        return dao.obterPorId(Cliente.class, id);
    }

    public List<Cliente> obterTodos() {
        return dao.obterTodos();
    }
}
